Modern devices include various systems for user input. For example, a smartphone (phone) can include hardware such as accelerometers, digital cameras, capacitive sensors, touchscreens, proximity sensors, etc. for use by such user input systems. A proximity sensor can include a light source and a photodetector. The light source emits light, which can be reflected from a surface of an object proximate to the light source. The photodetector detects the reflected light and can output a voltage or current corresponding to an intensity of light. Proximity sensors are often located at a top of a face of the phone to correspond to the location on the phone at which a user would place their ear while engaged in a voice call. If the proximity sensor detects that the user's ear is near the sensor, a touchscreen on the phone can be temporarily disabled to prevent unintentionally pressing (e.g., by the user's ear or cheek while the user is on a voice call) buttons on the touchscreen surface and can turn off a display reduce power consumption.
An increase in the complexity of applications for mobile devices has led to a corresponding increase in a need for more options for user input. However, the limited resources available to mobile devices has further led to existing hardware being used to provide multiple modes of user input instead of being used to provide a single mode of user input. For example, output from a digital camera may be used as input to control video games and as input to detect a user's heart rate.
For proximity sensors (e.g., using a photodetector), one approach for providing multiple modes of user input has been to use the sensors to detect both boolean proximity (i.e., whether a user's ear is near the phone or not) and gesture data (e.g., a user swiping their hand from left to right through the sensor's field of view and not contacting the phone with the swiping hand).
However, a challenge with using a proximity sensor to detect gesture data is that a field of view of the proximity sensor often does not coincide with the area where a user is likely to perform a gesture. Moreover, the sensor may not provide position data needed for gesture detection. Furthermore, a proximity sensor—a light source and a photodetector—is often located at the top of the face of the phone and has a relatively narrow field of view, which does not coincide with the area above the phone's screen. An average user is not aware of the location of the proximity sensor and therefore is likely to perform gestures over the area above the phone's screen and not within the field of view of the proximity sensor. Even if the user is aware that a proximity sensor is located at top of the phone, the user may not find it intuitive to perform a gesture at the top of the screen since, e.g., the user may be accustomed to interacting with a touchscreen on the phone. In addition, increasing the field of view and range of the proximity sensor (e.g., increasing the field of view of the photodetector and increasing the angle of illumination and range of the light source) to coincide with the area above the screen may cause the proximity sensor to consume a prohibitively large amount of power. Such an approach is analogous to turning on all of the lights in a large room to merely illuminate an object of interest, e.g., a book. While it is clear the turning on all of the lights in the room may illuminate the object of interest, it may also illuminate objects that are not of interest and therefore waste resources. Using this analogy, there is a need for a solution that can illuminate the object of interest without turning on all of the lights in the room. Correspondingly, there is a need for a solution to enable detecting a gesture over a screen (e.g., which may not be centered over the photodetector of the proximity sensor) while efficiently using power resources.
For a photodetector, detecting more than a boolean proximity (i.e., whether a user's ear is near the phone or not) becomes increasing challenging as the precision with which to track the proximity of an object increases. For example, merely detecting whether a user's ear is near a phone or may require less power and computation resources than continuously outputting a distance between an object (e.g., a user's hand) and the proximity sensor. Accordingly, there is a need for a gesture input system with flexibility to adjust an input mode, and the corresponding power and computation consumption, based on the nature of the input needed for a particular task.